package com.delio.server.series;

import java.sql.SQLException;
import java.util.List;

import com.delio.client.series.Serie;
import com.delio.client.series.SerieService;
import com.delio.server.base.Conexion;
import com.delio.server.base.util.GxtGridPaginate;
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
import com.extjs.gxt.ui.client.data.FilterPagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.ibatis.sqlmap.client.SqlMapClient;


public class SerieServiceImpl extends RemoteServiceServlet implements SerieService{


	private static final long serialVersionUID = 1L;

	static SqlMapClient sqlMap = Conexion.getSqlMap();
	
	@SuppressWarnings("unchecked")
	@Override
	public PagingLoadResult<Serie> paginateSerie(FilterPagingLoadConfig config) {
		
		GxtGridPaginate paginate = new GxtGridPaginate();
		paginate.config = config;
		paginate.setLimit();
		if(paginate.order.equals("")){
			paginate.order = " order by id desc";
		}
		List<Serie> data = null;
		System.out.println("esta fuera del try");
		try {
			data = sqlMap.queryForList("paginateSerie", paginate);
			System.out.println("esta dentro del try");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new BasePagingLoadResult<Serie>(data, paginate.offset, count(paginate));
	}
	
	
	public Integer count(GxtGridPaginate paginate){
		Integer count = null;
		try {
			count = (Integer) sqlMap.queryForObject("countSerie", paginate);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return count;
	}

	@Override
	public boolean guardar(Serie serie) {
		boolean var = false;
		try{
			System.out.println("entro en el try");
			sqlMap.insert("insertSerie",serie);
			System.out.println("paso el bloque try");
			var = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return var;
	}

	@Override
	public boolean eliminar(Integer id) {
		boolean var = false;
		try{             
			sqlMap.delete("deleteSerie",id);
			var = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return var;
	}

	@Override
	public boolean actualizar(Serie serie) {
		boolean var = false;
		try{
			sqlMap.update("updateSerie",serie);
			var = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return var;
	}

	@Override
	public Integer getSerie(Integer tdid) {
		Integer s = null;
		try{
			s = (Integer)sqlMap.queryForObject("getSerie",tdid);
			}catch(Exception e){
			e.printStackTrace();
		}
		return s;
	}
	
	public boolean actualizarNOP(Serie se) {
		boolean var=false;
		try{
			System.out.println("entro en el bloque try 1"+se.getUltimonumero());
			sqlMap.update("updateNOP",se);
			System.out.println("entro en el bloque try 2"+se.getTipodocumento_id());
			var = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return var;
	}

	@Override
	public boolean deleteAll(String ids) {
		// TODO Auto-generated method stub
		return false;
	}
}